1. Technical Field of the Invention
This invention is related generally to media processing devices, and more particularly to media players for processing streamed and segmented media packets.
2. Description of Related Art
Delivery of digital multimedia data or content (e.g., audio, full-motion video, pictures, etc.) is typically performed by a content server at one network site “streaming” the multimedia content over the network to a client (media player) at another site. Streaming is a process in which packets, sent over an Internet Protocol (IP)-based network, are used to present multimedia data continuously to a recipient client as the data arrives at the client. Thus, as perceived by the user, the multimedia content is presented in substantially real-time. Therefore, with a “streaming” architecture, the client does not have to download and store a large file before displaying the multimedia data. That is, the client may begin to present the data as it arrives (i.e., just-in-time rendering), rather than waiting for the entire data set to arrive before beginning presentation. Accordingly, at the client device, received data is buffered and continuously processed as soon as, or soon after, being received by the client for real time presentation of multimedia content.
Most streaming media sessions are either live sessions or video-on-demand (VOD) sessions that are typically associated with a single stream being presented to the client. However, if there is congestion in the network or the streaming server is overloaded, there can be considerable delays in streaming the media file, resulting in a non-continuous presentation of the media file on the client device. Such interruptions in presentation can be distracting to a viewer or listener and are highly undesirable in most applications. In addition, the buffer size in some client devices may not be large enough to accommodate the requested media file, and therefore, buffering delays may occur, which also produces interruptions in the presentation of the media file on the client device.
Another type of media content delivery is peer-to-peer delivery. In a peer-to-peer architecture, a client side download manager identifies a single media file stored on a plurality of remote sources. For example, a web site can maintain a list of sources for particular media files. The download manager initiates and transmits requests to each of the plurality of remote sources for particular segments of the media file in order to retrieve and “stitch” together the entire media file from the requested and delivered segments. However, delivery in such a peer-to-peer environment is not necessarily sequential in that the client typically receives the segments out-of-order. The client must wait for all segments to be received and “stitched” together before the presentation can begin. Depending on the network congestion and the reliability of the remote sources, this delay can be considerable, especially when large blocks of multimedia data are involved. In addition, the website maintaining the list of “sources” is typically not monitored, and therefore, the information on the website may not be accurate.